package crontool

import (
	"errors"
	"github.com/robfig/cron/v3"
	"local.public/innerpkg/logger"
)

var cronServer *cron.Cron

func InitCron() error {
	lCron, err := NewCron()
	if err != nil {
		return err
	}
	cronServer = lCron

	return nil
}

func AddFunc(spec string, cmd func()) {
	cronServer.AddFunc(spec, cmd)
}

func Start() {
	logger.Info("CronServer start")
	cronServer.Start()
}

func NewCron() (*cron.Cron, error) {
	c := cron.New()
	if c == nil {
		err := errors.New("初始化Cron连接失败！")
		return nil, err
	}
	logger.Info("已建立CronServer")
	return c, nil
}

func CloseCron() {
	if cronServer != nil {
		cronServer.Stop()
	}
}
